package fun.ipconfig.sort;

public class Bubble {

    /**
     * 冒泡排序法
     * 缺点: 当数组很乱且存在最小值在数字末尾，最大值在最前等情况，性能差
     * 优点: 在处理顺序不是很混乱的数组并且不存在最小最大值调换的情况下，时间复杂度是很理想的
     * @param arr
     */
    public static void sort(int arr[]){
        boolean isEnd = true;
        while(true){
            isEnd = true;
            for (int i = 0; i < arr.length - 2; i++) {
                if (arr[i] > arr[i + 1]) {
                    arr[i + 1] = arr[i + 1] + arr[i];
                    arr[i] = arr[i + 1] - arr[i];
                    arr[i + 1] = arr[i + 1] - arr[i];
                    isEnd = false;
                }
            }
            if(isEnd)return;
        }
    }
    public static void main(String[] args) {
        int arr[] = {3,4,2,1,12,34,11,23,156,123,123,46,16,18,77,91,36,1245,561,321,346,612,356,136,167,1334};
        sort(arr);
        for(int i : arr){
            System.out.println(i);
        }
    }
}
